package com.javatimes.test.util;

import java.text.SimpleDateFormat;
import java.util.Calendar;


/**
 * 充分利用org.apache.commons.codec.binary.StringUtils
 * 操作字符串,基本上涵盖了对字符串的常用操作
 * 如：字符串查找、替换、截取、split、trim、大小写转换等；
 * 如果没有特殊情况应优先使用此工具包中的方法,工具包中不存在要用的操作时,再进行扩展
 * 
 * @author samuel
 *
 */
public class StringUtils extends org.springframework.util.StringUtils {

	private static org.apache.commons.lang.StringUtils stringUtils;
	
	/**
	 * 返回字符串工具类
	 * @return
	 */
	public static org.apache.commons.lang.StringUtils getStringUtils()
	{
		return stringUtils;
	}
	
	
	/**
	 * 将string = "a,b,c,"形式转换Integer数组
	 * @param	value
	 * @return		
	 * 徐世强     @Date 2010-11-30
	 */
	public static Integer[] Str2Integers(String value){
		if(null == value || ! StringUtils .hasText(value)){
			return null;
		}
		String[] values = value.split(",");
		Integer[] v = new Integer[values.length];
		for(int i =0; i < values.length; i++)
		{
			v[i] = Integer.parseInt(values[i]);
		}
		return v;
	}
	/**
	 * 将string = "true,false,"形式转换Boolean数组
	 * @param	value
	 * @return		
	 * 徐世强     @Date 2010-11-30
	 */
	public static Boolean[] Str2Boolean(String value){
		if(null == value || ! StringUtils .hasText(value)){
			return null;
		}
		String[] values = value.split(",");
		Boolean[] b = new Boolean[values.length];
		for(int i =0; i < values.length; i++)
		{
			b[i] = Boolean.parseBoolean(values[i]);
		} 
		return b;
	}
	
	/* ************************************************原yssfun方法移植与添加的新方法 @auto kjx******************* */
		/** Programmer: Dranson (2005-8-9)
		* 功能说明：检查字符串是否包含比对字符集，如果包含其中一个就返回true，否则返回false
		* @param str String     被检查字符串
		* @param ary String[]   比对字符集
		* @return boolean 
		*/
	   public static boolean oneOf(String str, String[] ary){
	      for (int i = 0; i < ary.length; i++){
	         if (str.indexOf(ary[i]) > -1)
	            return true;
	      }
	      return false;
	   }
	   /** Programmer: Dranson (2005-8-9)
		* 功能说明：检查字符串是否包含比对字符集，如果包含其中一个就返回true，否则返回false
		* @param str String     被检查字符串
		* @param arys String    比对字符集(多个字符串用英文逗号间隔)
		* @return boolean 
		*/
	   public static boolean oneOf(String str, String arys){
		   if((arys==null || arys.trim().equalsIgnoreCase(""))&& str != null && !str.trim().equalsIgnoreCase("")) return false;//比对字符集为空直接返回false
		   return oneOf(str, arys.split(","));
	   }
	   
	   
	   /**
		 * @description 生成用于处理传递多套帐时查询用 
		 * @param value 前台传递的套帐号
		 * @return		
		 */
		public static long[] Str2Long(String value){
			if(null == value || ! StringUtils .hasText(value)){
				return null;
			}
			String[] values = value.split(",");
			long[] v = new long[values.length];
			for(int i =0; i < values.length; i++)
			{
				v[i] = Long.valueOf(values[i]);
			}
			return v;
		}
		
		
		/**
		 * @description 获取当前服务器日期
		 * @return
		 */
		public static String getCurrdate(String formatStr) {
			Calendar cal = Calendar.getInstance();
			SimpleDateFormat formatter = new SimpleDateFormat(formatStr);
			String mDateTime = formatter.format(cal.getTime());
			return mDateTime;
		}
	/* ************************************************原yssfun方法移植与添加的新方法 @auto kjx******************* */
}
